﻿using System;
using Epitech.Krisk.Xna.ScreenManagerLib.ScreenManager;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;

namespace Epitech.Krisk.Xna.UI.Game.InGame
{
    abstract public class AGameObject : IGameObject
    {
        /// <summary>
        /// Gets or sets the sprite batch.
        /// </summary>
        /// <value>
        /// The sprite batch.
        /// </value>
        public SpriteBatch SpriteBatch { get; set; }
        /// <summary>
        /// Gets or sets the content manager.
        /// </summary>
        /// <value>
        /// The content manager.
        /// </value>
        public ContentManager Content { get; set; }
        /// <summary>
        /// Gets or sets the view port.
        /// </summary>
        /// <value>
        /// The view port is the actual windows size. Need to be update.
        /// </value>
        public Viewport ViewPort { get; set; }

        public virtual void Draw(Microsoft.Xna.Framework.GameTime gameTime){}
        public virtual void HandleInput(InputState input){}
        public virtual void LoadContent(){}
        public virtual void UnloadContent(){}
        public virtual void Update(Microsoft.Xna.Framework.GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen){}
    }
}
